iT邦幫忙

2022 iThome 鐵人賽

DAY 13
0
自我挑戰組

30天玩轉規劃LINE BOT系列 第 13

第13天:規劃資料庫(二)

  • 分享至 

  • xImage
  •  

PostgreSQL資料庫初步已經完成後,再來就是開始著手建立專案資料庫,
選擇login按右鍵然後選擇create,再來按下login
https://ithelp.ithome.com.tw/upload/images/20220928/20144761ne4hDQzPnI.png

將name打上admin
https://ithelp.ithome.com.tw/upload/images/20220928/20144761TrRG1VjOvA.png

在definition設定密碼
https://ithelp.ithome.com.tw/upload/images/20220928/20144761kEwRwkzxGT.png

再到Privileges,將can login? 開啟
https://ithelp.ithome.com.tw/upload/images/20220928/201447613bc65Vclml.png

然後按下save後左邊即可看到新增的腳色
https://ithelp.ithome.com.tw/upload/images/20220928/201447614oVEODN4qB.png

在databases按右鍵然後選擇create,再來按下database
https://ithelp.ithome.com.tw/upload/images/20220928/20144761RZsiIRgBr9.png

name我就取為2022ironmanedwardbot,Owner就設定為剛剛創立的admin
https://ithelp.ithome.com.tw/upload/images/20220928/20144761wFtncAookJ.png

然後按下save後左邊即可看到新增的的資料庫
https://ithelp.ithome.com.tw/upload/images/20220928/20144761fPTAJEQ1Bf.png

接下來需要建立連上linebot的用戶資料庫,所以使用Flask-SQLAlchemy,讓我後續可以使用ORM物件對應關係操作,或使用SQL對資料庫進行操作。
什麼是ORM?這是維基百科的解釋連結【ORM wiki 連結】

接著回到 Pycharm,操作python安裝Flask-SQLAlchemy套件
進到Terminal 輸入以下內容,在按下Enter讓系統安裝套件。
pip install Flask-SQLAlchemy
https://ithelp.ithome.com.tw/upload/images/20220928/20144761vay5Lfi9Kr.png

接著按裝另一個套建psycopg2,這是用來與PostgreSQL資料庫連線用的。
pip install psycopg2
https://ithelp.ithome.com.tw/upload/images/20220928/20144761xaGUpVFdSv.png

再來就是建立與資料庫的連線,將SQLAlchemy整合到Flask中
首先先建立一個python file
https://ithelp.ithome.com.tw/upload/images/20220928/20144761EiUcWAYX6f.png

將其命名為extensions
https://ithelp.ithome.com.tw/upload/images/20220928/20144761DMtRd8LSpa.png

接下來就把所有相關擴充套件放置到extensions
為了將Flask-SQLAlchemy 套件中導入 SQLAlchemy

所以先打以下程式碼
from flask_sqlalchemy import SQLAlchemy
https://ithelp.ithome.com.tw/upload/images/20220928/20144761HeZJDzykEL.png

接者建立SQLAlchemy的物件,並將其命名為db,程式碼:
db = SQLAlchemy()
https://ithelp.ithome.com.tw/upload/images/20220928/20144761YhVkt622Xz.png

再回到app.py,添加 from extensions import db
然後再去設定資料庫的連結字串,在下面添加這樣格式的字串:
app.config['SQLALCHEMY_DATABASE_URI'] = '資料庫類型://管理者:密碼@資料庫IP:port號/資料庫名稱'

所以我依序就設定
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://admin:密碼@location:5432/2022ironmanedwardbot'

其中【密碼】不是要你們打【密碼】二字,是要你輸入admin的實際密碼
https://ithelp.ithome.com.tw/upload/images/20220928/20144761hWyEquyvzl.png

再來設定db的app為當前flask的app,並使用init_app進行初始化
db.app = app
db.init_app(app)
https://ithelp.ithome.com.tw/upload/images/20220928/20144761llIK3Du0A6.png

再來就是開始定義會員資料庫與相關模組處理,那就下一篇在寫。

下一篇,持續規劃資料庫


上一篇
第12天:規劃資料庫(一)
下一篇
第14天:規劃資料庫(三)
系列文
30天玩轉規劃LINE BOT30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言